package com.sz.biz.logistics.base.service;

import com.sz.biz.logistics.base.entity.ShippingCompany;
import com.sz.biz.logistics.base.dto.ShippingCompanyDto;
import com.sz.common.base.dto.QueryParams;
import com.sz.common.base.dto.ResultDto;

import java.util.List;

/**
 * Function: ShippingCompanyService <br>
 * Author: wentao.chang <br>
 * Date: 2017-08-04 15:47:00
 */
public interface ShippingCompanyService {

    void refreshCache();

    /**
     * 新增船运公司
     *
     * @param shippingCompanyDto shippingCompanyDto
     * @return int
     */
    int save(ShippingCompanyDto shippingCompanyDto);

    /**
     * 修改船运公司
     *
     * @param id                 id
     * @param shippingCompanyDto shippingCompanyDto
     * @return int
     */
    int update(Integer id, ShippingCompanyDto shippingCompanyDto);

    /**
     * 根据shippingCompanyIds删除船运公司
     *
     * @param shippingCompanyIds shippingCompanyIds
     */
    void deleteByIds(List<Integer> shippingCompanyIds);

    /**
     * 根据shippingCompanyId查询船运公司詳細信息
     *
     * @param shippingCompanyId shippingCompanyId
     * @return ShippingCompanyDto
     */
    ShippingCompanyDto findById(int shippingCompanyId);

    /**
     * 根据shippingCompanyId查询船运公司信息
     *
     * @param shippingCompanyId shippingCompanyId
     * @return Ship
     */
    ShippingCompany findSimpleById(int shippingCompanyId);

    List<ShippingCompany> findByIds(List<Integer> ids);

    /**
     * 根据条件分页查询船运公司
     *
     * @return ResultDto
     */
    ResultDto findShippingCompanyListPage(QueryParams params);

    /**
     * 根据条件分页查询船运公司短接口
     *
     * @return ResultDto
     */
    ResultDto findShippingCompanyShortListPage(QueryParams params);

    /**
     * 查询国际化数据
     *
     * @param params params
     * @return ResultDto
     */
    ResultDto findI18nByParam(QueryParams params);

    /**
     * @param name name
     */
    void checkShippingCompanyName(String name, Integer id);

    /**
     * @param code code
     */
    void checkShippingCompanyCode(String code, Integer id);
}
